home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / demo.exe / DIRS.DEM < prev    next >
Text File  |  1992-02-16  |  6KB  |  202 lines

  1. ; ----------------------------
  2. ; DIRS.DEM     - Demoprogramm für die Routinen aus DIRS.LIB
  3. ;                (für den A86)
  4. ;
  5. ;                (c) Bernd Schemmer 1990 - 1992
  6. ;                Letzter Update: 15.02.1992
  7. ;
  8. ; Übersetzen:
  9. ;  A86 DIRS.DEM DEMOS.INC TO DIRS.COM
  10. ;
  11. ; Hinweis: Die Environment-Variable 'A86' muß den Dateinamen 'MACROS.MAC'
  12. ;          enthalten und die .LIB-Dateien müssen über die Datei A86.LIB
  13. ;          erreichbar sein.
  14. ;
  15. ; ---------------------------
  16.          jmp start            ; Daten überspringen
  17.  
  18. logo  db CR,LF
  19.       db 'DIRS.DEM  - Demoprogramm für die Routinen aus DIRS.LIB'
  20.       db CR,LF
  21.       db '------------------------------------------------------'
  22.       db CR,LF
  23.       db CR,LF
  24. GETLENGTH logo
  25.                               ; Namen der Directorys
  26. DirPuffer  db 4,'TEST',0
  27. DirPuffer0 db 5,'TEST1',0
  28. DirPuffer1 db 2,'..',0
  29.  
  30. msg00 db
  31. msg0 db 'Erstelle das Directory TEST ...'
  32.      db CR,LF
  33. GETLENGTH msg0
  34.       db '(darf nicht möglich sein, da das Directory TEST schon existiert!)'
  35.       db CR,LF
  36. GETLENGTH msg00
  37.  
  38. MakeMsg  error0,        'Fehler: Directory TEST kann nicht erstellt werden!'
  39. MakeMsg error00, CR,LF, 'Fehler: Directory Test existiert bereits!'
  40.  
  41. msg10 db
  42. msg1 db CR,LF
  43.      db 'Wechsele ins Directory TEST ...'
  44.      db CR,LF
  45. GETLENGTH msg1
  46.       db '(darf nicht möglich sein, da kein Directory TEST existiert!)'
  47.       db CR,LF
  48. GETLENGTH msg10
  49.  
  50. MakeMsg error1,        'Fehler: Kann nicht ins Directory TEST wechseln!'
  51. MakeMsg msg2,   CR,LF, 'Wechsele ins übergeordnete Directory ...'
  52. MakeMsg error2,        'Fehler: Kann nicht ins übergeordnete Directory wechseln!'
  53. MakeMsg msg21,  CR,LF, 'Nenne das Directory TEST um in TEST1 ...'
  54. MakeMsg error21,       'Fehler: Kann das Directory TEST nicht umbenennen!'
  55.  
  56. msg30 db
  57. msg3 db CR,LF
  58.      db 'Lösche das Directory TEST1 ...'
  59.      db CR,LF
  60. GETLENGTH msg3
  61.       db '(darf nicht möglich sein, da das Directory TEST1 nicht existiert!)'
  62.       db CR,LF
  63. GETLENGTH msg30
  64.  
  65. MakeMsg error3, 'Fehler: Directory TEST1 kann nicht gelöscht werden!'
  66.  
  67. ; ------------------
  68.  
  69. start:
  70.          call ShowLogo        ; Logo ausgeben und Speicherblock verkleinern
  71.  
  72.          call ShowAktDir      ; akt. Directory ausgeben
  73.                               ; Feststellen, ob ein Directory existiert
  74.          mov si,offset DirPuffer
  75.          call ExistDir
  76.          jc >l1
  77.                               ; Directory existiert
  78.          WRITE_STRING error00
  79.          jmp Ende
  80.  
  81. l1:
  82.                               ; Erstellen eines Directorys
  83.          WRITE_STRING msg0
  84.          mov si,offset DirPuffer
  85.          call MakeDir
  86.          jnc >l1
  87.                               ; Fehler: Directory kann nicht erstellt werden!
  88.          WRITE_STRING error0
  89.          jmp Ende
  90. l1:
  91.                               ; Erstellen eines Directorys (mit Fehler)
  92.          WRITE_STRING msg00
  93.          mov si,offset DirPuffer
  94.          call MakeDir
  95.          jnc >l1
  96.                               ; erwarteter Fehler: Directory kann
  97.                               ;                    nicht erstellt werden!
  98.          WRITE_STRING error0
  99. l1:
  100.  
  101.                               ; Wechseln des Directorys
  102.          WRITE_STRING msg1
  103.          mov si,offset DirPuffer
  104.          call ChangeDir
  105.          jnc >l1
  106.                               ; Fehler: Directory kann nicht gewechselt werden!
  107.          WRITE_STRING error1
  108.          jmp Ende
  109. l1:
  110.          call ShowAktDir
  111.                               ; Wechseln des Directorys (mit Fehler)
  112.          WRITE_STRING msg10
  113.          mov si,offset DirPuffer
  114.          call ChangeDir
  115.          jnc >l1
  116.                               ; erwarteter Fehler: ins Directory kann
  117.                               ;                    nicht gewechselt werden!
  118.          WRITE_STRING error1
  119. l1:
  120.                               ; Wechseln ins übergeordente Directory
  121.          WRITE_STRING msg2
  122.          mov si,offset DirPuffer1
  123.          call ChangeDir
  124.          jnc >l1
  125.                               ; Fehler: Directory kann nicht gewechselt werden!
  126.          WRITE_STRING error2
  127.          jmp Ende
  128. l1:
  129.          call ShowAktDir
  130.                               ; umbennen eines Directorys
  131.          WRITE_STRING msg21
  132.          mov si,offset DirPuffer
  133.          mov di,offset DirPuffer0
  134.          call RenameDir
  135.          jnc >l1
  136.  
  137.          WRITE_STRING error21
  138.          jmp Ende
  139.  
  140. l1:
  141.                               ; Löschen eines Directorys
  142.          WRITE_STRING msg3
  143.          mov si,offset DirPuffer0
  144.          call RemoveDir
  145.          jnc >l1
  146.                               ; Fehler: Directory kann nicht gelöscht werden!
  147.          WRITE_STRING error3
  148.          jmp Ende
  149. l1:
  150.                               ; Löschen eines Directorys (mit Fehler)
  151.          WRITE_STRING msg30
  152.          mov si,offset DirPuffer0
  153.          call RemoveDir
  154.          jnc >l1
  155.                               ; erwarteter Fehler: Directory kann
  156.                               ;                    nicht gelöscht werden!
  157.          WRITE_STRING error3
  158. l1:
  159.  
  160. Ende:
  161.          EndProcess 0
  162.  
  163.  
  164. ; ----------------------------
  165. ; ShowAktDir
  166. ;
  167. ; Funktion: Gibt das akt. Laufwerk auf die Standard-Ausgabe aus
  168. ;
  169. AktDirPuffer db 0,65 dup 0    ; Puffer für das akt. Directory
  170.  
  171. MakeMsg1 AktDirMsg,  'Das akt. Directory ist '
  172. MakeMsg  AktDirError, 'Fehler: Aktuelles Directory konnte nicht ermittelt werden!'
  173.  
  174. ShowAktDir:
  175.          xor dl,dl            ; LW = akt. Laufwerk
  176.          mov si,offset AktDirPuffer
  177.          call GetDir          ; Akt. Directory ermitteln
  178.          jc >l1               ; Fehler aufgetreten!
  179.  
  180.          pushf                ; Akt. Directory ausgeben
  181.          WRITE_STRING AktDirMSG
  182.          mov si,offset AktDirPuffer
  183.          lodsb
  184.          mov cl,al
  185.          xor ch,ch
  186.          mov dx,si
  187.          mov bx,01h
  188.          mov ah,040h
  189.          int 021h
  190.  
  191.          call ShowCR_LF
  192.          popf
  193.          jmp >l9
  194.  
  195. l1:                           ; Fehlermeldung ausgeben
  196.          pushf
  197.          WRITE_STRING AktDirError
  198.          popf
  199. l9:
  200.          ret
  201.  
  202.